/**
 * 
 */
package edu.unmsm.ocaa.sisocaa.negocio.service.impl;

import java.util.List;

import javax.annotation.Resource;

import org.springframework.dao.DataAccessException;
import org.springframework.stereotype.Service;

import edu.unmsm.ocaa.sisocaa.integracion.dao.FichaDAO;
import edu.unmsm.ocaa.sisocaa.integracion.dao.RespuestaDAO;
import edu.unmsm.ocaa.sisocaa.negocio.model.dto.FichaDTO;
import edu.unmsm.ocaa.sisocaa.negocio.service.FichaService;
import edu.unmsm.ocaa.sisocaa.negocio.service.PregFichaService;

/**
 * @author sweethome
 *
 */
@Service
public class FichaServiceImpl implements FichaService{

	@Resource
	FichaDAO fichadao;
	@Resource
	PregFichaService pregFichaService;
	@Resource
	RespuestaDAO respuestaDAO;
	@Override
	public void actualizarFicha(FichaDTO ficha) throws DataAccessException {
		// TODO Auto-generated method stub
		fichadao.updateFicha(ficha);
	}

	@Override
	public void ingresarFicha(FichaDTO ficha) throws DataAccessException {
		// TODO Auto-generated method stub
		fichadao.insertFicha(ficha);
	}

	@Override
	public List<FichaDTO> listarFichas(Integer id_dep) throws DataAccessException {
		// TODO Auto-generated method stub
		return fichadao.getFichas(id_dep);
	}

	@Override
	public FichaDTO obtenerMaxFicha() throws DataAccessException {
		// TODO Auto-generated method stub
		return fichadao.getMaxFicha();
	}

	@Override
	public FichaDTO obtenerFicha(Integer idFicha) throws DataAccessException {
		// TODO Auto-generated method stub
		return fichadao.getFicha(idFicha);
	}

	@Override
	public List<FichaDTO> obtenerFichaxTipo(Integer idTipo, Integer id_dep)
			throws DataAccessException {
		// TODO Auto-generated method stub
		return fichadao.getFichaxTipo(idTipo, id_dep);
	}

	@Override
	public List<FichaDTO> listarFichasxTipoPerDyDscFicha(String dscTipoper,
			String dscFicha) {
		// TODO Auto-generated method stub
		return fichadao.getFichaxTipoDyDscFicha(dscTipoper, dscFicha);
	}

	@Override
	public List<FichaDTO> obtenerFichas(Integer id_dep) {
		// TODO Auto-generated method stub
		return fichadao.getFichas(id_dep);
	}

	@Override
	public Boolean existeFichaxTipo(Integer idTipUsu) {
		if (fichadao.countFichaxTipo(idTipUsu)>0) {
			return true;
		} else {
			return false;
		}
	}

	@Override
	public Integer obtenerTotalServsxFichaResp(Integer idFicha) {
		// TODO Auto-generated method stub
		return fichadao.countServxFichaResp(idFicha);
	}

	@Override
	public String eliminarFicha(Integer id_ficha) throws DataAccessException {
		if(respuestaDAO.getExisteRespuesta(id_ficha)>0){
			return "No se puede eliminar, existen usuarios que ya llenaron este cuestionario.";
		}else{
			pregFichaService.eliminarTodasPregxFicha(id_ficha);
			fichadao.deleteFicha(id_ficha);
			return "Se elimino con exito";
			}
		
	}

}
